import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './plugins/element.js'
import './assets/css/global.css'
// 富文本编辑器
import Vue2Editor from 'vue2-editor'
// 导入axios
import axios from 'axios'
// 导入lodash工具库
import _ from 'lodash'
// 导入Npprogess的JS和css
import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'

Vue.config.productionTip = false
// 配置请求路径
axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'
// axios请求拦截为请求头添加Authorization字段
axios.interceptors.request.use(config => {
  // 加载Nprogress进度条
  Nprogress.start()
  // 将token赋值给添加的字段
  config.headers.Authorization = window.sessionStorage.getItem('token')
  return config
})
axios.interceptors.response.use(config => {
  // 关闭Nprogress进度条
  Nprogress.done()
  return config
})

// vue原型定义axios
Vue.prototype.$http = axios

// lodash
Vue.prototype._ = _

// 富文本编辑器
Vue.use(Vue2Editor)

// 时间初始化
Vue.filter('dateFormat', function(orginVal) {
  const time = new Date(orginVal)
  const Y = time.getFullYear()
  // ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度，会在头部或尾部补全。padStart()用于头部补全，padEnd()用于尾部补全。
  const M =
    time.getMonth() + 1 < 10 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1
  const D = time.getDate()
  const h = time.getHours()
  const m = time.getMinutes()
  const s = time.getSeconds() < 10 ? '0' + time.getSeconds() : time.getSeconds()
  return `${Y}-${M}-${D} ${h}:${m}:${s}`
})

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
